草庐IT

Ruby File 类和方法

全部标签

c# - C# 中的线程和静态方法

这里以一个无意义的扩展方法为例:publicstaticclassMyExtensions{publicstaticintMyExtensionMethod(thisMyTypee){intx=1;x=2;returnx}}假设一个执行线程完成并包括以下行:x=2;处理器然后上下文切换,另一个线程进入相同的方法并完成该行:intx=1;我是否正确地假设第一个线程创建和分配的变量“x”与第二个线程创建和分配的变量“x”位于单独的堆栈上,这意味着该方法是可重入的? 最佳答案 是的,每个线程都有自己独立的局部变量。即使被多个线程同时调用,

c# - 在调用方法时使用 Moq 分配属性值

我正在尝试使用Moq在调用方法时分配属性。类似的东西:Mockmock=newMock();mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled=true);是否可以在调用方法时使用Moq设置预期的属性值 最佳答案 我假设您实际上是在尝试在调用方法时在Mock上执行一个新的Setup()?如果是这样,您应该能够通过回调来完成此操作,如下所示:Mockmock=newMock();mock.Setup(x=>x.Start()).Callback(()=>mock.SetupGet(

C# 2.0 线程问题(匿名方法)

我有一个包含以下代码的简单应用程序:FileInfo[]files=(newDirectoryInfo(initialDirectory)).GetFiles();Listthreads=newList(files.Length);foreach(FileInfofinfiles){Threadt=newThread(delegate(){Console.WriteLine(f.FullName);});threads.Add(t);}foreach(Threadtinthreads)t.Start();假设在“I=initialDirectory”目录中我有3个文件。然后这个应用程序

c# - 比较 XML 文件是否相等的最佳方法是什么?

我使用的是.NET2.0,最近的代码更改使我之前的Assert.AreEqual调用(比较两个XML字符串)无效。XML中只有一个元素在新代码库中实际上不同,所以我希望所有其他元素的比较会给我想要的结果。比较需要以编程方式完成,因为它是单元测试的一部分。起初,我考虑使用几个XmlDocument实例。但后来我发现了这个:http://drowningintechnicaldebt.com/blogs/scottroycraft/archive/2007/05/06/comparing-xml-files.aspx看起来它可能有效,但我对StackOverflow反馈很感兴趣,以防有更好

c# - 使用反射调用静态方法时如何通过ref传递参数?

我正在使用反射在对象上调用静态方法:MyType.GetMethod("MyMethod",BindingFlags.Static).Invoke(null,newobject[]{Parameter1,Parameter2});如何通过ref而不是通过值来传递参数?我假设它们默认是按值计算的。第一个参数(数组中的“Parameter1”)应该是ref,但我不知道如何以这种方式传递它。 最佳答案 对于引用参数(或C#中的out),反射会将新值复制到对象数组中与原始参数相同的位置。您可以访问该值以查看更改后的引用。publicclas

c# - 从 .NET 通过电子邮件地址搜索 AD 用户的正确方法

我在使用旨在通过搜索电子邮件地址在ActiveDirectory中查找用户的代码时遇到了一些问题。我尝试了2种方法,但有时发现FindOne()方法在某些情况下不会返回任何结果。如果我在Outlook的GAL中查找用户,我会看到列出的SMTP电子邮件地址。我的最终目标是确认用户存在于AD中。我只有电子邮件地址作为搜索条件,所以无法使用名字或姓氏。方法一:使用邮件属性:DirectorySearchersearch=newDirectorySearcher(entry);search.Filter="(mail="+email+")";search.PropertiesToLoad.Ad

c# - 有没有一种简单的方法可以使 EntityFramework 使用 SQL 默认值?

例如,我的大多数实体都有DateCreated和DateModified字段。在SQLServer中,它们的默认设置为GetUtcDate()。如果我尝试创建一个实体但不设置这些值,我会收到一个异常,提示它无法运行SQL插入,因为日期值超出范围。这是有道理的,因为C#默认日期是1/1/0001,而SQLServer的最小日期是1/1/1753。那么有没有一种方法可以告诉EF使用SQLServer默认值,或者不要尝试插入尚未设置的列? 最佳答案 您必须将这些属性的StoreGeneratedPattern设置为Identity(对于D

c# - 获取静态类的静态方法的MethodInfo

我正在尝试获取静态类中静态方法的MethodInfo。运行以下行时,我只得到基本的4个方法,ToString、Equals、GetHashCode和GetType:MethodInfo[]methodInfos=typeof(Program).GetMethods();如何获取此类中实现的其他方法? 最佳答案 varmethods=typeof(Program).GetMethods(BindingFlags.Static|BindingFlags.Instance|BindingFlags.Public|BindingFlags.

c# - 在 C# 中,为什么接口(interface)实现必须显式实现方法的另一个版本?

举个例子:publicinterfaceIFoo{IFooBar();}publicclassFoo:IFoo{publicFooBar(){//...}IFooIFoo.Bar(){returnBar();}//Whyisthisnecessary?}为什么IFooBar()的隐式实现是必要的,即使Foo无需转换就可以转换为IFoo? 最佳答案 在这种情况下需要它,因为C#不支持接口(interface)的返回类型协变,所以你的函数publicFooBar(){//...}不满足IFoo接口(interface),因为Bar方法的

c# - FluentAssertions ShouldNotThrow 无法识别异步方法/Func

我正在尝试检查异步方法抛出的具体异常。为此,我使用MSTEST和FluentAssertions2.0.1。我检查过这个DiscussiononCodeplex并查看它如何与异步异常方法一起工作,这是关于FluentAssertionsasynctests的另一个链接:尝试使用我的“生产”代码一段时间后,我关闭了Fluentassertions伪造的aync类,结果代码如下(将此代码放在[TestClass]中:[TestMethod]publicvoidTestThrowFromAsyncMethod(){varasyncObject=newAsyncClass();Actionac